This file includes migration steps for each release of c2cgeoportal.

=============
Version 2.8.1
=============

1. Update dependencies to use GDAL 3.7

   Use MapServer 8.0 with GDAL 3.7 (instead of 3.6)
   Use QGIS server 3.28 with GDAL 3.7 (instead of 3.6)
   Use GDAL 3.7 as based image (instead of 3.6)

2. Docker Compose version 2

   Docker Compose version 2 is now supported (with the command `docker compose` instead of `docker-compose`) is now supported.
   For that an new argument `--docker-compose-version-2` is added to the `build` command, this argument should be used in the CI/CD pipeline.

   In the `Makefile` you should replace all `docker-compose ` by `docker compose `
   and remove all the argument `--no-deps` of the command `docker compose run`.

   In the `project.yaml` you should add `Makefile` in the `managed_files` section.

   End of support by GitHub: https://github.blog/changelog/2024-04-10-github-hosted-runner-images-deprecation-notice-docker-compose-v1/.

4. Previously the `Cache-Control` header was set to `public` when we are not authenticated to an endpoint
   that use the authentication. But this didn't works in every cases, for example when we use the intranet
   role and when we have a reverse proxy with cache. Now it's always set to private for all the endpoints
   that use the authentication.


=============
Version 2.8.0
=============

Information to know before starting the upgrade
===============================================


Information
===========

1. We upgraded MapServer to version 8, then the Mapfiles should probably be updated, and we have a new
   configurations file named `mapserver/mapserver.conf`.
   Migration guide: https://mapserver.org/MIGRATION_GUIDE.html#mapserver-7-6-to-8-0-migration.
   Deprecated element from `CLASS` removed (moved to `STYLE`)
   https://mapserver.org/development/rfc/ms-rfc-133.html#rfc133.

2. We added the support of 'main_ogc_server' to WMS mapserver proxy URL.
   This means that if the value 'vars/main_ogc_server' is present in the vars.yaml of the project,
   that will be used as default value when no 'ogcserver' parameter is present in the request.

3. We switched the OpenLayers renderer to now use WegGL for WMTS. In the case of background tiles with
   transparency, you should add the parameter 'ngeoTilesPreloadingLimit: 0' to the vars.yaml in 'constants'
   so that background tiles are rendered correctly.

4. In the `user` table, the column `deactivated` is now interpreted more strictly, `null` is now considered as `true`.

5. We add the `gmfPrintOptions` in the update path then the default print options are maintained in the
   `CONST_vars.yaml`, especially the `hiddenAttributes`, then if you used the default value it can be
   removed.

Main versions updates
-------------------
Ubuntu is updated from 20.04.6 to 22.04.2
Python is updated from 3.8.10 to 3.10.6
Node is updated from 16.20.0 to 16.20.0
Npm is updated from 8.19.4 to 8.19.4
Postgres is updated from 15+250.pgdg20.04+1 to 15+250.pgdg22.04+1
GDAL is updated from 3.4.3, to 3.6.4,
Proj is updated from 9.0.0 to 9.1.1

Python packages updates
---------------------
New packages:
* astroid at version 2.15.5
* bandit at version 1.7.5
* dill at version 0.3.6
* dodgy at version 0.2.1
* flake8 at version 2.3.0
* flake8-polyfill at version 1.0.2
* gitdb at version 4.0.10
* GitPython at version 3.1.31
* isort at version 5.12.0
* lazy-object-proxy at version 1.9.0
* markdown-it-py at version 2.2.0
* mccabe at version 0.7.0
* mdurl at version 0.1.2
* mypy at version 1.3.0
* mypy-extensions at version 1.0.0
* pep8 at version 1.7.1
* pep8-naming at version 0.10.0
* prospector at version 1.9.0
* pycodestyle at version 2.10.0
* pydocstyle at version 6.3.0
* pyflakes at version 2.5.0
* pylint at version 2.17.4
* pylint-celery at version 0.3
* pylint-django at version 2.5.3
* pylint-flask at version 0.6
* pylint-plugin-utils at version 0.7
* requirements-detector at version 1.2.2
* rich at version 13.4.1
* semver at version 3.0.0
* setoptconf-tmp at version 0.3.1
* shapely at version 2.0.1
* smmap at version 5.0.0
* snowballstemmer at version 2.2.0
* tomli at version 2.0.1
* tomlkit at version 0.11.8
* typing_extensions at version 4.6.2

Removed packages:
* azure-identity
* boto3
* botocore
* Cython
* Deprecated
* distlib
* filelock
* importlib-metadata
* importlib-resources
* jmespath
* linesman
* msal
* msal-extensions
* msrest
* networkx
* Paste
* pipenv
* pipfile
* pkgconfig
* portalocker
* poyo
* pygraphviz
* repoze.lru
* s3transfer
* Shapely
* typing-extensions
* virtualenv
* virtualenv-clone
* zipp

Major updates:
* attrs from 21.4.0 to 23.1.0
* basicauth from 0.4.1 to 1.0.0
* boltons from 21.0.0 to 23.0.0
* Chameleon from 3.9.1 to 4.0.0
* chardet from 4.0.0 to 5.1.0
* charset-normalizer from 2.0.12 to 3.1.0
* colander from 1.8.3 to 2.0
* cryptography from 41.0.1 to 39.0.2
* geojson from 2.5.0 to 3.0.1
* greenlet from 1.1.3.post0 to 2.0.2
* munch from 2.5.0 to 3.0.0
* packaging from 21.3 to 23.1
* PasteDeploy from 2.1.1 to 3.0.1
* plaster-pastedeploy from 0.7 to 1.0.1
* python-slugify from 4.0.1 to 8.0.1
* pytz from 2021.3 to 2023.3
* PyYAML from 5.4.1 to 6.0
* stevedore from 3.5.2 to 5.1.0
* urllib3 from 1.26.16 to 2.0.2
* zope.deprecation from 4.4.0 to 5.0
* zope.interface from 5.4.0 to 6.0
* zope.sqlalchemy from 1.6 to 3.0

Minor updates:
* affine from 2.3.1 to 2.4.0
* alembic from 1.7.7 to 1.10.4
* azure-core from 1.26.3 to 1.27.0
* azure-storage-blob from 12.14.1 to 12.16.0
* Babel from 2.9.1 to 2.12.1
* Beaker from 1.11.0 to 1.12.1
* c2cwsgiutils from 5.0.1 to 5.2.2
* click from 8.0.4 to 8.1.3
* dogpile.cache from 1.1.8 to 1.2.0
* Fiona from 1.8.22 to 1.9.3
* GDAL from 3.4.3 to 3.6.4
* GeoAlchemy2 from 0.11.1 to 0.13.2
* graphviz from 0.19.2 to 0.20.1
* hupper from 1.10.3 to 1.12
* idna from 3.3 to 3.4
* iso8601 from 1.0.2 to 1.1.0
* Jinja2 from 3.0.3 to 3.1.2
* numpy from 1.22.4 to 1.24.3
* OWSLib from 0.28.1 to 0.29.2
* papyrus from 2.4 to 2.5
* pbr from 5.8.1 to 5.11.1
* Pillow from 9.4.0 to 9.5.0
* plaster from 1.0 to 1.1.2
* polib from 1.1.1 to 1.2.0
* pycryptodome from 3.14.1 to 3.17
* PyJWT from 2.4.0 to 2.7.0
* pyotp from 2.6.0 to 2.8.0
* pyproj from 3.3.1 to 3.5.0
* pyramid-debugtoolbar from 4.9 to 4.10
* pyramid-jinja2 from 2.9.2 to 2.10
* pyyaml-include from 1.2.post2 to 1.3
* rasterio from 1.2.10 to 1.3.6
* redis from 4.3.6 to 4.5.4
* sentry-sdk from 1.14.0 to 1.21.1
* SQLAlchemy-Utils from 0.38.3 to 0.41.1
* tilecloud from 1.8.2 to 1.9.3
* transaction from 3.0.1 to 3.1.0
* ujson from 5.4.0 to 5.7.0
* wrapt from 1.13.3 to 1.15.0
* zope.event from 4.4 to 4.6

Npm packages updates
------------------
New packages:
* @snyk/protect at version 1.1094.0
* cy-mobile-commands at version 0.3.0
* cypress-browser-permissions at version 1.1.0
* cypress-real-events at version 1.7.6
* eslint-plugin-lit at version 1.8.2
* eslint-plugin-wc at version 1.4.0
* i18next-http-backend at version 2.1.1
* neat-csv at version 5.2.0
* strip-bom at version 5.0.0

Removed packages:
* @sentry/integrations
* angular-gettext-tools
* commander
* eslint
* i18next-xhr-backend
* puppeteer

Major updates:
* @sentry/browser from 6.18.2 to 7.35.0
* @sentry/tracing from 6.18.2 to 7.35.0
* @sentry/types from 6.18.2 to 7.35.0
* editorconfig-checker from 4.0.2 to 5.0.1
* eslint-plugin-jsdoc from 38.0.8 to 39.7.5
* fs-extra from 10.0.1 to 11.1.0
* glob from 7.2.3 to 8.1.0
* i18next-browser-languagedetector from 6.1.8 to 7.0.1
* i18next-parser from 6.0.1 to 7.6.0
* i18next from 21.6.16 to 22.4.9
* node-sass from 6.0.1 to 7.0.3
* ol-layerswitcher from 3.8.3 to 4.1.0
* ol-mapbox-style from 7.1.1 to 9.5.0
* ol from 6.12.0 to 7.2.2
* sinon from 13.0.2 to 15.0.1
* svgo from 2.8.0 to 3.0.2
* tsconfig-paths from 3.14.2 to 4.1.2

Minor updates:
* @babel/core from 7.17.12 to 7.20.12
* @babel/plugin-proposal-class-properties from 7.16.7 to 7.18.6
* @babel/plugin-proposal-decorators from 7.17.12 to 7.20.13
* @babel/plugin-transform-spread from 7.16.7 to 7.20.7
* @babel/plugin-transform-typescript from 7.16.8 to 7.20.13
* @babel/preset-env from 7.16.11 to 7.20.2
* @babel/preset-typescript from 7.16.7 to 7.18.6
* @lit/reactive-element from 1.3.4 to 1.6.1
* @trevoreyre/autocomplete-js from 2.2.0 to 2.4.1
* babel-loader from 8.2.5 to 8.3.0
* core-js from 3.21.1 to 3.27.2
* d3 from 7.3.0 to 7.8.2
* jsts from 2.8.1 to 2.9.3
* lit-html from 2.2.7 to 2.6.1
* lit from 2.2.8 to 2.6.1
* rxjs from 7.5.7 to 7.8.0
* sass-loader from 10.2.1 to 10.4.1
* terser from 5.12.1 to 5.16.2
* tinycolor2 from 1.4.2 to 1.5.2
* ts-node from 10.7.0 to 10.9.1


Changes to apply
================
